# -*- coding: iso-8859-1 -*-
from VaisseauV1 import Vaisseau
from Batiment import *
from Unite import *

class Joueur1:
    def __init__(self, nom, id):
        self.nom=nom            #-= Nom du joueur a entrer lors de la connection=-
        self.id=id              #-= Adresse IP donnée par le client lors de sa connection=-
        self.race=""            #-= La race choisie dans le lobby, à implémenter dans le sprint 4=-
        self.mineraux=0         #-= Le nombre de minéraux du Joueur, à implémenter au sprint 2=-
        self.energie=0          #-= La quantité d'énergie du Joueur, à implémenter au sprint 2=-
        self.connaissance=0     #-= La quantité de connaissance du Joueur, à implémenter au sprint 2=-
        self.nourritureMax=10   #-= La quantité maximale de nourriture disponible pour le Joueur, à implémenter au sprint 2=- 
        self.nourritureAct=0    #-= La quantité de nourriture présentement utilisée par le Joueur, à implémenter au sprint 2=- 
        self.posCamX=5          #-= La position en X de la caméra du joueur dans l'espace
        self.posCamY=5          #-= La position en Y de la caméra du joueur dans l'espace
        
        self.vaisseaux=[] 
        self.vaisseauxCourant=[] # Liste des vaisseaux Courants du joueur
        self.unites=[]
        self.unitesCourant=[]
        self.planetes=[]        #-= La Liste des planètes colonisées par le joueur=-
        self.flottes=[]         #-= La Liste des flottes appartenant au joueur=-
        self.guerres=[]         #-= La Liste des empires avec qui le joueur est en guerre=-
        self.aliances=[]        #-= La liste des empires avec qui le joueur est allié=-
        self.acceptRequest=True #-= Si le joueur peut accepter des requête server-side ou non=-
        self.nbVaisseaux = 0
        self.idVaisseau = 0
        self.idBatiment = 0

        self.nbVaisseaux += 1
        self.idUnit = 0
        
    def recevoirRessources(self): 
        #-=Méthode à appeler tous les x secondes pour ajouter les ressources=-    
        self.mineraux += self.revenuMin()
        self.energie += self.revenuEner()
        self.connaissance += self.revenuCon()
        
    def revenuMin(self):
        #-=Méthode calculant la différence entre le revenu et l'entretien en Mineraux=-
        revenu = 0
        for i in self.planetes:
            revenu += self.planetes[i].revenuMin - self.planetes[i].entretienMin
            
        return revenu
    
    def revenuEner(self):
        #-=Méthode calculant la différence entre le revenu et l'entretien en Énergie=-
        revenu = 0
        for i in self.planetes:
            revenu += self.planetes[i].revenuEner - self.planetes[i].entretienEner
            
        return revenu
    
    def revenuCon(self):
        #-=Méthode calculant la différence entre le revenu et l'entretien en Connaissance=-
        revenu = 0
        for i in self.planetes:
            revenu += self.planetes[i].revenuCon - self.planetes[i].entretienCon     
        return revenu
    
    def creerNouveauVaisseau(self,nom,type,posx,posy):
        if type == "combat":
            self.idVaisseau+=1
            nv = Vaisseau(self.idVaisseau, self.id, nom, 4, posx, posy, 5, 5, 30,35,40)
            self.idUnit +=1
            nv.listeUnites.append(Unite("Unit", self.idUnit, self.id, 100, 100, 10, 10, 5, 200, 200,26,30))
            self.vaisseaux.append(nv)
        elif type == "scout":
            self.idVaisseau+=1
            nv = Vaisseau(self.idVaisseau, self.id, nom, 5, posx, posy, 5, 0, 20)
            self.vaisseaux.append(nv)
        elif type == "croiseur":
            self.idVaisseau+=1
            nv = Vaisseau(self.idVaisseau, self.id, nom, 3, posx, posy, 5, 2, 40)
            self.vaisseaux.append(nv)
        elif type == "mothership":
            self.idVaisseau+=1
            nv = Vaisseau(self.idVaisseau, self.id, nom, 2, posx, posy, 5, 0, 100,100,95)
            self.vaisseaux.append(nv)
            
        else:
            #Turret
            self.idVaisseau+=1
            nv = Vaisseau(self.idVaisseau, self.id, nom, 0, posx, posy, 5, 10, 40)
            self.vaisseaux.append(nv)
            
    def creerNouveauBatiment(self,nom,posx,posy,planete):
        if nom == "mine":
            self.idBatiment+=1
            nb = Batiment(nom, self.idBatiment, self.id, posx, posy, 60)
            planete.listeBatiments.append(nb)
        elif nom == "caserne":
            self.idBatiment+=1
            nb = Batiment(nom, self.idBatiment, self.id, posx, posy, 60)
            planete.listeBatiments.append(nb)
            
    def coloniser(self,vaisseau,planete):
        planete.joueur = self.nom
        planete.listeUnite.append(vaisseau.listeUnites[0])
        vaisseau.listeUnites.remove(vaisseau.listeUnites[0])
    
